package jp.co.nes.awssupport.common.bean;

import java.math.BigDecimal;
import java.time.ZonedDateTime;

/**
 * リザーブド管理です。
 */
public class ReservedManageBean extends BaseBean {

    /** serialVersionUID */
    private static final long serialVersionUID = 1L;

    /** リザーブドインスタンスID */
    private String reservedInstanceId;

    /** サブスクリプションID */
    private String subscriptionId;

    /** 料金プランID */
    private String pricingPlanId;

    /** 連結アカウントID */
    private String linkedAccountId;

    /** 製品名 */
    private String productName;

    /** リージョンコード */
    private String regionCode;

    /** マルチAZ */
    private String multiAZ;

    /** 製品説明 */
    private String productDescription;

    /** インスタンスタイプ */
    private String instanceType;

    /** 使用開始日時 */
    private ZonedDateTime usageStartDate;

    /** 使用終了日時 */
    private ZonedDateTime usageEndDate;

    /** 要求タイプ */
    private String offeringType;

    /** 要求クラス */
    private String offeringClass;

    /** 期間 */
    private int duration;

    /** 数量 */
    private BigDecimal quantity;

    /** リザーブドインスタンスARN */
    private String reservationARN;

    /** 年月 */
    private int yearMonth;

    /**
     * デフォルトコンストラクタです。
     */
    public ReservedManageBean() {
    }

    /**
     * リザーブドインスタンスIDを返却します。
     *
     * @return リザーブドインスタンスID
     */
    public String getReservedInstanceId() {
        return reservedInstanceId;
    }

    /**
     * リザーブドインスタンスIDを設定します。
     *
     * @param reservedInstanceId リザーブドインスタンスID
     */
    public void setReservedInstanceId(String reservedInstanceId) {
        this.reservedInstanceId = reservedInstanceId;
    }

    /**
     * サブスクリプションIDを返却します。
     *
     * @return サブスクリプションID
     */
    public String getSubscriptionId() {
        return subscriptionId;
    }

    /**
     * サブスクリプションIDを設定します。
     *
     * @param subscriptionId サブスクリプションID
     */
    public void setSubscriptionId(String subscriptionId) {
        this.subscriptionId = subscriptionId;
    }

    /**
     * 料金プランIDを返却します。
     *
     * @return 料金プランID
     */
    public String getPricingPlanId() {
        return pricingPlanId;
    }

    /**
     * 料金プランIDを設定します。
     *
     * @param pricingPlanId 料金プランID
     */
    public void setPricingPlanId(String pricingPlanId) {
        this.pricingPlanId = pricingPlanId;
    }

    /**
     * 連結アカウントIDを返却します。
     *
     * @return 連結アカウントID
     */
    public String getLinkedAccountId() {
        return linkedAccountId;
    }

    /**
     * 連結アカウントIDを設定します。
     *
     * @param linkedAccountId 連結アカウントID
     */
    public void setLinkedAccountId(String linkedAccountId) {
        this.linkedAccountId = linkedAccountId;
    }

    /**
     * 製品名を返却します。
     *
     * @return 製品名
     */
    public String getProductName() {
        return productName;
    }

    /**
     * 製品名を設定します。
     *
     * @param productName 製品名
     */
    public void setProductName(String productName) {
        this.productName = productName;
    }

    /**
     * リージョンコードを返却します。
     *
     * @return リージョンコード
     */
    public String getRegionCode() {
        return regionCode;
    }

    /**
     * リージョンコードを設定します。
     *
     * @param regionCode リージョンコード
     */
    public void setRegionCode(String regionCode) {
        this.regionCode = regionCode;
    }

    /**
     * マルチAZを返却します。
     *
     * @return マルチAZ
     */
    public String getMultiAZ() {
        return multiAZ;
    }

    /**
     * マルチAZを設定します。
     *
     * @param multiAZ マルチAZ
     */
    public void setMultiAZ(String multiAZ) {
        this.multiAZ = multiAZ;
    }

    /**
     * 製品説明を返却します。
     *
     * @return 製品説明
     */
    public String getProductDescription() {
        return productDescription;
    }

    /**
     * 製品説明を設定します。
     *
     * @param productDescription 製品説明
     */
    public void setProductDescription(String productDescription) {
        this.productDescription = productDescription;
    }

    /**
     * インスタンスタイプを返却します。
     *
     * @return インスタンスタイプ
     */
    public String getInstanceType() {
        return instanceType;
    }

    /**
     * インスタンスタイプを設定します。
     *
     * @param instanceType インスタンスタイプ
     */
    public void setInstanceType(String instanceType) {
        this.instanceType = instanceType;
    }

    /**
     * 使用開始日時を返却します。
     *
     * @return 使用開始日時
     */
    public ZonedDateTime getUsageStartDate() {
        return usageStartDate;
    }

    /**
     * 使用開始日時を設定します。
     *
     * @param usageStartDate 使用開始日時
     */
    public void setUsageStartDate(ZonedDateTime usageStartDate) {
        this.usageStartDate = usageStartDate;
    }

    /**
     * 使用終了日時を返却します。
     *
     * @return 使用終了日時
     */
    public ZonedDateTime getUsageEndDate() {
        return usageEndDate;
    }

    /**
     * 使用終了日時を設定します。
     *
     * @param usageEndDate 使用終了日時
     */
    public void setUsageEndDate(ZonedDateTime usageEndDate) {
        this.usageEndDate = usageEndDate;
    }

    /**
     * 要求タイプを返却します。
     *
     * @return 要求タイプ
     */
    public String getOfferingType() {
        return offeringType;
    }

    /**
     * 要求タイプを設定します。
     *
     * @param offeringType 要求タイプ
     */
    public void setOfferingType(String offeringType) {
        this.offeringType = offeringType;
    }

    /**
     * 要求クラスを返却します。
     *
     * @return 要求クラス
     */
    public String getOfferingClass() {
        return offeringClass;
    }

    /**
     * 要求クラスを設定します。
     *
     * @param offeringClass 要求クラス
     */
    public void setOfferingClass(String offeringClass) {
        this.offeringClass = offeringClass;
    }

    /**
     * 期間を返却します。
     *
     * @return 期間
     */
    public int getDuration() {
        return duration;
    }

    /**
     * 期間を設定します。
     *
     * @param duration 期間
     */
    public void setDuration(int duration) {
        this.duration = duration;
    }

    /**
     * 数量を返却します。
     *
     * @return 数量
     */
    public BigDecimal getQuantity() {
        return quantity;
    }

    /**
     * 数量を設定します。
     *
     * @param quantity 数量
     */
    public void setQuantity(BigDecimal quantity) {
        this.quantity = quantity;
    }

    /**
     * リザーブドインスタンスARNを返却します。
     *
     * @return リザーブドインスタンスARN
     */
    public String getReservationARN() {
        return reservationARN;
    }

    /**
     * リザーブドインスタンスARNを設定します。
     *
     * @param reservationARN リザーブドインスタンスARN
     */
    public void setReservationARN(String reservationARN) {
        this.reservationARN = reservationARN;
    }

    /**
     * 年月を返却します。
     *
     * @return 年月
     */
    public int getYearMonth() {
        return yearMonth;
    }

    /**
     * 年月を設定します。
     *
     * @param yearMonth 年月
     */
    public void setYearMonth(int yearMonth) {
        this.yearMonth = yearMonth;
    }
}
